Large scale shared storage systems typically provide data to multiple applications or workload classes with differing performance requirements. Existing Quality of Service (QoS) approaches for controlling resource allocation in such storage systems generally fall into three main categories: (1) I/O scheduling based on fair scheduling algorithms, (2) time slicing at the disk, and (3) control theoretic approaches. A limitation of existing resource allocation techniques is that they focus mainly on fairness but do not account for the trade-off between fairness and I/O efficiency.
When multiple applications with different performance requirements, priorities, and workload characteristics share storage, it can be difficult to ensure that each receives a particular performance requirement. Additionally, higher priority applications can experience lesser performance degradation if shared storage resources are limiting. Often, storage administrators approach the issue by statically partitioning the shared storage between the applications. This approach, however, removes many of the benefits of using shared storage because one application cannot make use of resources left idle by another application.
Accordingly, a variety of problems arises in shared storage allocation situations. First, how can disparate time-varying storage workloads that share a storage device be dealt with to ensure that each storage workload gets at least its target performance? Second, during periods when it isn't possible to meet all target performances, how can shared storage be dynamically allocated so that the highest-priority workloads suffer least? And third, how are the above situations accomplished when the shared storage device has multiple independent ports, and the workloads may use an arbitrary, time-varying combination of the ports to access shared resources?
Thus, effective techniques of allocating shared storage resources to applications executing on an associated processing system, while minimizing idle resources, have proven elusive.